Skip to main content

Delete Until Space Freed

Description

The delete_until_space_freed function repeatedly deletes files from a specified folder until there is enough available space to meet the required space (needed_bytes). The function will break if there are fewer than 10 files left in the folder.

Function Signature:

def delete_until_space_freed(delete_from_folder_path: str, needed_bytes: int) -> int:

Parameters

  • delete_from_folder_path (str): The path of the folder from which files will be deleted.
  • needed_bytes (int): The number of bytes that need to be freed up. The function will continue to delete files until this amount of space is available.

Returns

  • int: The function returns 0 if it successfully frees the required space, or -1 if an error occurs.

Example Usage

folder_path = "/path/to/folder"
needed_space = 100 * 1024 * 1024 # 100 MB
result = delete_until_space_freed(folder_path, needed_space)

if result == 0:
print("Successfully freed up the required space.")
else:
print("Error occurred while trying to free space.")

Notes

  • The function checks the available space on the root file system (/) using os.statvfs().
  • It will delete files from the provided folder until there is enough free space.
  • The function breaks out of the loop if the number of files in the folder goes below 10 or the available space is sufficient.

Error Handling

  • If any error occurs during the process (e.g., file deletion failure or permission errors), the function returns -1.